package cn.stylefeng.guns.sys.modular.tao.service;

import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.sys.modular.tao.entity.Classification;
import cn.stylefeng.guns.sys.modular.tao.entity.Goods;
import cn.stylefeng.guns.sys.modular.tao.model.params.GoodsParam;
import cn.stylefeng.guns.sys.modular.tao.model.result.GoodsResult;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.apache.poi.ss.formula.functions.T;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品表 服务类
 * </p>
 *
 * @author 
 * @since 2019-08-09
 */
public interface GoodsService extends IService<Goods> {

    /**
     * 新增
     *
     * @author 
     * @Date 2019-08-09
     */
    void add(GoodsParam param);

    /**
     * 删除
     *
     * @author 
     * @Date 2019-08-09
     */
    void delete(GoodsParam param);

    /**
     * 更新
     *
     * @author 
     * @Date 2019-08-09
     */
    void update(GoodsParam param);

    /**
     * 查询单条数据，Specification模式
     *
     * @author 
     * @Date 2019-08-09
     */
    GoodsResult findBySpec(GoodsParam param);

    /**
     * 查询列表，Specification模式
     *
     * @author 
     * @Date 2019-08-09
     */
    List<GoodsResult> findListBySpec(GoodsParam param);

    /**
     * 查询分页数据，Specification模式
     *
     * @author
     * @Date 2019-08-09
     */
     LayuiPageInfo findPageBySpec(GoodsParam param);

    List<GoodsResult> getAllGoods(Map<String, Object> params);

    void updates(Goods goods);

    void updateById(String id,String price);

    Goods getByIds(Long id);

    List<GoodsResult> getAllGoodsAndSku();

    List<Goods> getGoodsClass();

    Integer updateByClass(Classification classificationParam);

    List<String> getAllGoods2And();

    List<GoodsResult> lists(Map<String, Object> map);

    int counts(Map<String, Object> map);

    List<GoodsResult> getGoodsAll();

    GoodsResult getGoodsByGoodsId(String id);

    List<GoodsResult> getGoodsByName(String name,String index,String end);

    int getgoodsById(String goodId);

    void addPrice(String goodId,String price);

    /**
     * 根据分类查询数据
     */
    List<GoodsResult> queryDataAccordingToClassification(@Param("ids") String ids);



    T selectOne(@Param("ew") Wrapper<T> queryWrapper);




    /**
     * 修改图文视频的id
     */
    void updataPictureVideoId(Goods goods);

    void updateType(GoodsParam goodsParam);

}
